package com.goldman.aplt.base.type;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * @description：
 * @author： chenxiangxiang
 * @create： 2024/1/24 21:02
 */
public interface ComMessage {
    @Data
    public class RequestData<T> {
        private T data;

        public RequestData(T data) {
            this.data = data;
        }
    }
    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    public class EmailReq {
        @JsonProperty("msg_id")
        private String msgId;
        private String timestamp;
        private String country;
        private String recipient;
        @JsonProperty("client_no")
        private String clientNo;
        @JsonProperty("acct_no")
        private String acctNo;
        @JsonProperty("sub_acct_no")
        private String subAcctNo;
        private String source;
        private String scene;

        @JsonProperty("otp_digits")
        private String otpDigits;
        private String lifespan;

        @JsonProperty("extended_fields")
        private Map<String, Object> extendedFields;

        @JsonProperty("attachments")
        private Map<String, Object> attachments;
    }

    @Data
    public class EmailResp {
        @JsonProperty("unique_id")
        private String uniqueId;
    }

    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    public class EmailRedisValue {
        private BaseEnumType.E_MESSAGE_TYPE type;
        private String scene;
        //收款收件
        private Set<String> emails;
        private Map<String, Object> extendedFields;
    }
}
